/* {{ .Name }}--------自动化代码---------------------- 开始*/
// 文件路径 项目根目录internal\controller\{{ .FileController }}\{{ .Name }}.go
// 包装对外暴露对象
var {{ .Name }} gu{{ .Name }}
type gu{{ .Name }} struct {}

// Creat 创建记录
func (gu gu{{ .Name }}) Creat(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}CreatReq)(res *{{ .FileApi }}.{{ .Name }}CreatRes,err error){
	err = {{ .FileServer }}.{{ .Name }}.Creat(ctx,req.Form)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}CreatRes{
		IsSuccess: true,
	}
	return
}
// Update 更新记录
func (gu gu{{ .Name }}) Update(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}UpdateReq)(res *{{ .FileApi }}.{{ .Name }}UpdateRes,err error){
	err = {{ .FileServer }}.{{ .Name }}.Update(ctx,req.Form)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}UpdateRes{
		IsSuccess: true,
	}
	return
}
// React 根据id获取记录
func (gu gu{{ .Name }}) React(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}ReadReq)(res *{{ .FileApi }}.{{ .Name }}ReadRes,err error){
	var Form *entity.{{ .EntityName }}
	Form,err = {{ .FileServer }}.{{ .Name }}.React(ctx,req.Id)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}ReadRes{
		Form: Form,
	}
	return
}
// Delete 根据id删除单条
func (gu gu{{ .Name }}) Delete(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}DeleteReq)(res *{{ .FileApi }}.{{ .Name }}DeleteRes,err error){
	err = {{ .FileServer }}.{{ .Name }}.Delete(ctx,req.Id)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}DeleteRes{
		IsSuccess: true,
	}
	return
}
// DeleteByIds 根据id数组批量删除数据
func (gu gu{{ .Name }}) DeleteByIds(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}DeleteByIdsReq)(res *{{ .FileApi }}.{{ .Name }}DeleteByIdsRes,err error){
	err = {{ .FileServer }}.{{ .Name }}.DeleteByIds(ctx,req.Ids)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}DeleteByIdsRes{
		IsSuccess: true,
	}
	return
}
// BatchByIds 根据id数组批量操作
func (gu gu{{ .Name }}) BatchByIds(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}BatchByIdsReq)(res *{{ .FileApi }}.{{ .Name }}BatchByIdsRes,err error){
	switch req.BatchType {
	case "One":
		// 后端server其他服务
		err = {{ .FileServer }}.{{ .Name }}.BatchByIdsToOne(ctx,req.Ids,req.BatchValue)
		return nil, err
	case "Two":
		// 后端server其他服务
		err = {{ .FileServer }}.{{ .Name }}.BatchByIdsToTwo(ctx,req.Ids,req.BatchValue)
		return nil, err
	case "Three":
		// 后端server其他服务
		err = {{ .FileServer }}.{{ .Name }}.BatchByIdsToThree(ctx,req.Ids,req.BatchValue)
		return nil, err
	default:
		err = gerror.New("BatchType类型错误")
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}BatchByIdsRes{
		IsSuccess: true,
	}
	return
}
// GetList 分页获取记录
func (gu gu{{ .Name }}) GetList(ctx context.Context,req *{{ .FileApi }}.{{ .Name }}ListReq)(res *{{ .FileApi }}.{{ .Name }}ListRes,err error){
	var list []*entity.{{ .EntityName }}
	var total int
	list, total,err = {{ .FileServer }}.{{ .Name }}.GetList(ctx,req.Page)
	if err != nil {
		return nil, err
	}
	res = &{{ .FileApi }}.{{ .Name }}ListRes{
		List: list,
		Total: total,
	}
	return
}